package com.group3.hospital.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.group3.hospital.bean.Affiche;
import com.group3.hospital.service.AfficheService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

@Controller
@RequestMapping("/affiche/")
public class AfficheController {
    @Resource
    private AfficheService afficheService;

    @RequestMapping("/AfficheUi")
    public String AfficheUi(Model model,
                         @RequestParam(required = false,defaultValue = "1",value = "pageNum") Integer pageNum,
                         @RequestParam(defaultValue = "10",value = "pageSize") Integer pageSize){
        if(pageNum == null || pageNum <= 0){
            pageNum = 1;
        }
        if(pageSize == null){
            pageSize = 10;
        }
        PageHelper.startPage(pageNum,pageSize);

        try {
            List<Affiche> affiches = afficheService.queryAll();
            PageInfo<Affiche> pageInfo = new PageInfo<Affiche>(affiches,pageSize);
            model.addAttribute("pageInfo",pageInfo);
            model.addAttribute("affiches",affiches);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            PageHelper.clearPage();
        }
        return "adviceManage";
    }

    @RequestMapping("/AfficheDel")
    public String AfficheDel(@RequestParam("id") Integer id){
        try {
            afficheService.deleteById(id);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "redirect:/affiche/AfficheUi";
    }

    @RequestMapping("/Add")
    public String Add(){
        return "afficheadd";
    }

    @RequestMapping("/AfficheAdd")
    public String AfficheAdd(String message, String dtime){
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date dat = format.parse(dtime);
            Affiche affiche = new Affiche(message, dat);
            afficheService.add(affiche);
        } catch (ParseException e) {
            e.printStackTrace();
        }


        return "redirect:/affiche/AfficheUi";
    }

    @RequestMapping("/AfficheEdit")
    public String AfficheEdit(Integer id, Model model){
        try {
            Affiche affiche = afficheService.queryById(id);
            model.addAttribute("affiche",affiche);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "affiche-edit";
    }

    @RequestMapping("/edit")
    public String edit(Affiche affiche){
        try {
            System.out.println(affiche);
            afficheService.updateaffiche(affiche);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "redirect:/affiche/AfficheUi";
    }
}
